import { renamingRule } from '../../utils/renaming-rule';

const renames: Record<string, string | [string, string]> = {
  RxCoalescingOptions: '@rx-angular/cdk/coalescing',
  coalescingObj: '@rx-angular/cdk/coalescing',
  coalesceWith: '@rx-angular/cdk/coalescing',
  coalescingManager: '@rx-angular/cdk/coalescing',
  CoalescingManager: '@rx-angular/cdk/coalescing',
  coerceObservable: '@rx-angular/cdk/coercing',
  coerceObservableWith: '@rx-angular/cdk/coercing',
  coerceDistinctObservable: '@rx-angular/cdk/coercing',
  coerceDistinctWith: '@rx-angular/cdk/coercing',
  coerceAllFactory: '@rx-angular/cdk/coercing',
  cancelCallback: '@rx-angular/cdk/internals/scheduler',
  scheduleCallback: '@rx-angular/cdk/internals/scheduler',
  forceFrameRate: '@rx-angular/cdk/internals/scheduler',
  PriorityLevel: '@rx-angular/cdk/internals/scheduler',
  RxStrategyProvider: '@rx-angular/cdk/render-strategies',
  ScheduleOnStrategyOptions: '@rx-angular/cdk/render-strategies',
  RX_CONCURRENT_STRATEGIES: '@rx-angular/cdk/render-strategies',
  RxConcurrentStrategies: '@rx-angular/cdk/render-strategies',
  RX_NATIVE_STRATEGIES: '@rx-angular/cdk/render-strategies',
  RxNativeStrategies: '@rx-angular/cdk/render-strategies',
  onStrategy: '@rx-angular/cdk/render-strategies',
  strategyHandling: '@rx-angular/cdk/render-strategies',
  RxStrategies: '@rx-angular/cdk/render-strategies',
  RxStrategyNames: '@rx-angular/cdk/render-strategies',
  RxDefaultStrategyNames: '@rx-angular/cdk/render-strategies',
  RxConcurrentStrategyNames: '@rx-angular/cdk/render-strategies',
  RxNativeStrategyNames: '@rx-angular/cdk/render-strategies',
  RxCustomStrategyCredentials: '@rx-angular/cdk/render-strategies',
  RxStrategyCredentials: '@rx-angular/cdk/render-strategies',
  RxRenderBehavior: '@rx-angular/cdk/render-strategies',
  RxRenderWork: '@rx-angular/cdk/render-strategies',
  RX_ANGULAR_CONFIG: [
    'RX_RENDER_STRATEGIES_CONFIG',
    '@rx-angular/cdk/render-strategies',
  ],
  RX_ANGULAR_DEFAULTS: [
    'RX_RENDER_STRATEGIES_DEFAULTS',
    '@rx-angular/cdk/render-strategies',
  ],
  RxAngularConfig: [
    'RxRenderStrategiesConfig',
    '@rx-angular/cdk/render-strategies',
  ],
  ObservableAccumulation: '@rx-angular/cdk/internals/core',
  ObservableMap: '@rx-angular/cdk/internals/core',
  accumulateObservables: '@rx-angular/cdk/internals/core',
  templateHandling: '@rx-angular/cdk/template',
  RxBaseTemplateNames: '@rx-angular/cdk/template',
  RxRenderAware: '@rx-angular/cdk/template',
  RxViewContext: '@rx-angular/cdk/template',
  rxBaseTemplateNames: '@rx-angular/cdk/template',
  RxTemplateManager: '@rx-angular/cdk/template',
  createTemplateManager: '@rx-angular/cdk/template',
  RxNotificationTemplateNameMap: '@rx-angular/cdk/template',
  RxListManager: '@rx-angular/cdk/template',
  createListTemplateManager: '@rx-angular/cdk/template',
  RxListViewComputedContext: '@rx-angular/cdk/template',
  RxDefaultListViewContext: '@rx-angular/cdk/template',
  RxListViewContext: '@rx-angular/cdk/template',
  RxNotificationKind: '@rx-angular/cdk/notifications',
  RxNotification: '@rx-angular/cdk/notifications',
  RxCompleteNotification: '@rx-angular/cdk/notifications',
  RxErrorNotification: '@rx-angular/cdk/notifications',
  RxNextNotification: '@rx-angular/cdk/notifications',
  RxNotificationValue: '@rx-angular/cdk/notifications',
  RxSuspenseNotification: '@rx-angular/cdk/notifications',
  toRxErrorNotification: '@rx-angular/cdk/notifications',
  toRxSuspenseNotification: '@rx-angular/cdk/notifications',
  toRxCompleteNotification: '@rx-angular/cdk/notifications',
  templateTriggerHandling: '@rx-angular/cdk/notifications',
  rxMaterialize: '@rx-angular/cdk/notifications',
  createTemplateNotifier: '@rx-angular/cdk/notifications',
  getZoneUnPatchedApi: '@rx-angular/cdk/internals/core',
  Promise: '@rx-angular/cdk/zone-less/browser',
  requestAnimationFrame: '@rx-angular/cdk/zone-less/browser',
  cancelAnimationFrame: '@rx-angular/cdk/zone-less/browser',
  setInterval: '@rx-angular/cdk/zone-less/browser',
  clearInterval: '@rx-angular/cdk/zone-less/browser',
  setTimeout: '@rx-angular/cdk/zone-less/browser',
  clearTimeout: '@rx-angular/cdk/zone-less/browser',
  unpatchAddEventListener: '@rx-angular/cdk/zone-less/browser',
  interval: '@rx-angular/cdk/zone-less/rxjs',
  timer: '@rx-angular/cdk/zone-less/rxjs',
  fromEvent: '@rx-angular/cdk/zone-less/rxjs',
  asyncScheduler: '@rx-angular/cdk/zone-less/rxjs',
  asapScheduler: '@rx-angular/cdk/zone-less/rxjs',
  queueScheduler: '@rx-angular/cdk/zone-less/rxjs',
  animationFrameScheduler: '@rx-angular/cdk/zone-less/rxjs',
  focusEvents: '@rx-angular/cdk/zone-configurations',
  mouseEvents: '@rx-angular/cdk/zone-configurations',
  wheelEvents: '@rx-angular/cdk/zone-configurations',
  inputEvents: '@rx-angular/cdk/zone-configurations',
  formControlsEvents: '@rx-angular/cdk/zone-configurations',
  keyboardEvents: '@rx-angular/cdk/zone-configurations',
  vrEvents: '@rx-angular/cdk/zone-configurations',
  mSGestureEvents: '@rx-angular/cdk/zone-configurations',
  printEvents: '@rx-angular/cdk/zone-configurations',
  networkEvents: '@rx-angular/cdk/zone-configurations',
  audioEvents: '@rx-angular/cdk/zone-configurations',
  compositionEvents: '@rx-angular/cdk/zone-configurations',
  touchEvents: '@rx-angular/cdk/zone-configurations',
  globalEvents: '@rx-angular/cdk/zone-configurations',
  websocketEvents: '@rx-angular/cdk/zone-configurations',
  xhrEvents: '@rx-angular/cdk/zone-configurations',
  windowEvents: '@rx-angular/cdk/zone-configurations',
  allEvents: '@rx-angular/cdk/zone-configurations',
  EventTarget: '@rx-angular/cdk/zone-configurations',
  RxZoneFlagsHelperFunctions: '@rx-angular/cdk/zone-configurations',
  RxZoneGlobalConfigurations: '@rx-angular/cdk/zone-configurations',
  RxZoneTestConfigurations: '@rx-angular/cdk/zone-configurations',
  RxZoneRuntimeConfigurations: '@rx-angular/cdk/zone-configurations',
  zoneConfig: '@rx-angular/cdk/zone-configurations',
};

export default renamingRule(
  ['@rx-angular/cdk', '@rx-angular/cdk/zone-less'],
  renames
);
